package com.mixsmart.core.bean.validator;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.mixsmart.core.enums.DataFormatType;

/**
 * 定义验证Bean注释类
 * @author lmq
 * @version 1.0
 * @since JDK版本大于等于1.6
 * 2016年3月15日
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Validate {

	/**
	 * 是否为空
	 * @return 返回boolean类型
	 */
	public boolean nullable() default true;
	
	/**
	 * 数据长度(只能验证字符数据类型的数据)；
	 * 可以设置长度范围；如6-8位数；则值为“6-8”
	 * @return 返回数据长度
	 */
	public String length() default "";
	
	/**
	 * 数据格式类型
	 * @return 返回数据格式类型
	 */
	public DataFormatType dataFormatType() default DataFormatType.TEXT;
	
	/**
	 * 正则表达式
	 * @return 返回正则表达式
	 */
	public String regexExpr() default "";
	
	/**
	 * 自定义验证类
	 * @return 返回自定义类
	 */
	public Class<?> className();
	
	/**
	 * 值范围
	 * @return 返回一个取值范围的数组
	 */
	public String[] valueRange();
}
